package beans;

import java.util.*;
import java.sql.*;

import dbUtil.*;
import utils.*;
import iteradores.IteradorReserva;


/**
 * Clase que representa el bean de la tabla SolicitudRegistro de la BD
 * @author José Giménez, Gustavo Planás, Esteban Benítez
 */
public class Reserva extends PgAbm implements Abm {
    /**
     * Constructor de la clase SolicitudRegistro
     */
    public Reserva () {
        ArrayList array_campos = new ArrayList();

        //Tabla correspondiente a la clase Solicitud de Registro
        super.setTableName("reserva");

        //Campos de la tabla
        array_campos = new ArrayList();
        array_campos.add("idreserva");
        array_campos.add("fechainicio");
        array_campos.add("horainicio");
        array_campos.add("fechafinal");
        array_campos.add("horafinal");
        array_campos.add("ubicacion");
        array_campos.add("estado");
        array_campos.add("personaretiro");
        array_campos.add("ciretirante");
        array_campos.add("observacion");
        array_campos.add("idusuario");
        array_campos.add("idrecurso");
        array_campos.add("idtiporecurso");
        array_campos.add("idsolicitudreserva");
        array_campos.add("idaprobador");
        
        //Clave primaria de la tabla Usuario
        ArrayList array_claves = new ArrayList();
        array_claves.add("idreserva");

        //Hash para los valores de la tabla
        super.initMapping();

        //Establecer valores de campos y campo clave en el padre
        super.setCampos(array_campos);
        super.setClaves(array_claves);

       //Setea qué secuenciador utiliza la tabla  
        super.setSequence("idreserva", "reserva_idreserva_seq");
    }

    /**
     * Obtiene el iterador de la clase SolicitudRegistro
     * @return Iterador de la clase SolicitudRegistro
     * @throws java.lang.Exception
     */
    public Iterador getIterator() throws Exception {
        ResultSet rs_datos = super.getResultSet();
        IteradorReserva iter = new IteradorReserva(rs_datos);
        return iter;
    }

    /**
     * Setea el ID de la solicitud
     * @param valor Nuevo ID de la solicitud
     */
    public void setIdsolicitud(String valor) {
        setMapValue("idsolicitudregistro", valor);
    }

    /**
     * Setea el nombre del solicitante
     * @param valor Nuevo nombre del solicitante
     */
    public void setNombre(String valor) {
        setMapValue("nombre", valor);
    }

    /**
     * Setea el apellido del solicitante
     * @param valor Nuevo apellido del solicitante
     */
    public void setApellido(String valor) {
        setMapValue("apellido", valor);
    }

    /**
     * Setea el nombre operativo del solicitante
     * @param valor Nuevo nombre operativo del solicitante
     */
    public void setNombreoperativo(String valor) {
        setMapValue("nombreoperativo", valor);
    }

    /**
     * Setea el nombre de usuario del solicitante
     * @param valor Nuevo nombre de usuario del solicitante
     */
    public void setNombreUsuario(String valor) {
        setMapValue("nombreusuario", valor);
    }

    /**
     * Setea la contraseña del solicitante
     * @param valor Nueva contraseña del solicitante
     */
    public void setContrasenha(String valor) {
        setMapValue("contrasenha", valor);
    }

    /**
     * Setea la dirección del solicitante
     * @param valor Nueva dirección del solicitante
     */
    public void setDireccion(String valor) {
        setMapValue("direccion", valor);
    }

    /**
     * Setea el nro. de teléfono del solicitante
     * @param valor Nuevo nro. de teléfono del solicitante
     */
    public void setTelefono(String valor) {
        setMapValue("telefono", valor);
    }

    /**
     * Setea el nro. de teléfono móvil del solicitante
     * @param valor Nuevo nro de teléfono móvil del solicitante
     */
    public void setTelefonoMovil(String valor) {
        setMapValue("telefonomovil", valor);
    }

    /**
     * Setea la dirección de mail del solicitante
     * @param valor Nueva dirección de mail del solicitante
     */
    public void setEmail(String valor) {
        setMapValue("email", valor);
    }

    /**
     * Setea una observación del solicitante
     * @param valor Nueva observación del solicitante
     */
    public void setObservacion(String valor) {
        setMapValue("observacion", valor);
    }

    /**
     * Setea el ID de tipo de documento del solicitante
     * @param valor Nuevo ID de tipo de documento
     */
    public void setIdTipoDocumento(String valor) {
        setMapValue("idtipodocumento", valor);
    }

    /**
     * Setea el nro. de documento del solicitante (CI)
     * @param valor Nuevo nro. de documento
     */
    public void setNroDocumento(String valor) {
        setMapValue("nrodocumento", valor);
    }
    
    /**
     * Setea el estado del usuario 
     * @param valor Nuevo estado del usuario
     */
    public void setEstado(String valor) {
        setMapValue("estado", valor);
    }

    /**
     * Obtiene el ID de la solicitud 
     * @return el ID de la solicitud
     */
    public String getIdsolicitud() {
        return (String) getMapValue("idsolicitudregistro");
    }

    /**
     * Obtiene el nombre del solicitante 
     * @return El nombre del solicitante
     */
    public String getNombre() {
        return (String) getMapValue("nombre");
    }

    /**
     * Obtiene el apellido del solicitante
     * @return El apellido del solicitante
     */
    public String getApellido() {
        return (String) getMapValue("apellido");
    }

    /**
     * Obtiene el nombre operativo del solicitante
     * @return El nombre operativo del solicitante
     */
    public String getNombreoperativo() {
        return (String) getMapValue("nombreoperativo");
    }

    /**
     * Obtiene la fecha de ingreso
     * @return Fecha de ingreso
     */
    public String getNombreUsuario() {
        return (String) getMapValue("nombreusuario");
    }

    /**
     * Obtiene la fecha de ingreso
     * @return Fecha de ingreso
     */
    public String getPassword() {
        return (String) getMapValue("contrasenha");
    }

    /**
     * Obtiene la fecha de ingreso
     * @return Fecha de ingreso
     */
    public String getDireccion() {
        return (String) getMapValue("direccion");
    }

    /**
     * Obtiene la fecha de ingreso
     * @return Fecha de ingreso
     */
    public String getTelefono() {
        return (String) getMapValue("telefono");
    }

    /**
     * Obtiene la fecha de ingreso
     * @return Fecha de ingreso
     */
    public String getTelefonoMovil() {
        return (String) getMapValue("telefonomovil");
    }

    /**
     * Obtiene la fecha de ingreso
     * @return Fecha de ingreso
     */
    public String getEmail() {
        return (String) getMapValue("email");
    }

    /**
     * Obtiene la fecha de ingreso
     * @return Fecha de ingreso
     */
    public String getObservacion() {
        return (String) getMapValue("observacion");
    }

    /**
     * Obtiene la fecha de ingreso
     * @return Fecha de ingreso
     */
    public String getIdTipoDocumento() {
        return (String) getMapValue("idtipodocumento");
    }

    /**
     * Obtiene la fecha de ingreso
     * @return Fecha de ingreso
     */
    public String getNroDocumento() {
        return (String) getMapValue("nrodocumento");
    }
    
    /**
     * Obtiene la fecha de ingreso
     * @return Fecha de ingreso
     */
    public String getEstado() {
        return (String) getMapValue("estado");
    }
}